1. Technical Field
The present invention relates to data storage systems and more particularly to storage systems that are arranged to “dump” the contents of a volatile memory in the event of a power failure so as to make the contents of the volatile memory persistent across power failures.
2. Description of Related Art
Many computer systems include a so called “storage subsystem” for storing data. Such a storage subsystem will typically comprise one or more adapters, controllers and disks, such as, for example, a redundant array of independent disks (a RAID system). It can often be the case in such storage subsystems for data that is to be written to the main nonvolatile memory, e.g. disk array, to first be stored temporarily in a local faster, volatile cache memory before it is stored on the disk drive. One example of this type of operation is so called “fast write caching”, in which data to be stored is first written to a volatile memory, so that the application storing the data can then be freed to proceed with another write operation without needing to wait until the data has been written to the disk drive (which can take a relatively long time).
The cache memory used to temporarily store the data before it is written to a disk drive in such systems is usually of a volatile type, since such memories are usually faster and smaller than nonvolatile storage devices. However, this then has the disadvantage that data stored in the cache memory could be lost in the event of a power failure (since that data has yet to be written to the nonvolatile memory, but will, typically, have been assumed to have already safely been stored in nonvolatile memory by the applications using the storage subsystem (such that the applications will no longer continue to preserve that data)). There is therefore a need in such systems to maintain the integrity of the data stored in the volatile memory in the event of a power failure or interruption.
As well as for fast write caching, the need to maintain the integrity of data stored in a volatile memory in the event of a power failure or interruption can also be important in, e.g. RAID functions or copy services.
It would be possible to reduce the risk of data loss from the volatile memory in the event of a power failure or interruption by providing, e.g., a reserve battery supply for maintaining the volatile memory in the event of a power failure. However, the Applicants have found that that can lead to significantly reduced performance.
It has also been suggested therefore to provide in such systems an arrangement whereby an e.g., memory controller, can dump the contents of the cache memory to a nonvolatile memory using an auxiliary or backup power supply such as a battery in the event that a power failure is detected. This preserves the data in the cache memory and allows it to be retrieved from where it was “dumped” to once power is restored so that it can then be properly written to the, e.g., disk drives of the storage subsystem. U.S. Pat. No. 5,748,844 describes one such prior art system. An advantage of this type of system is that the battery power required to dump the data to the nonvolatile memory may be less than that required to, e.g., maintain the volatile memory for any significant period of time.
Volatile memory that is protected, e.g., by the ability to dump its contents to a nonvolatile memory, in the event of a power failure or interruption is often referred to as “persistent” memory, since its contents will persist (and be preserved) across power supply failures.
However, one drawback that the Applicants have recognised with “data dumping” systems, is that once a power failure has occurred and the contents of the volatile memory dumped under battery power, there may then be insufficient capacity remaining in the battery to carry out another “data dump” in the event of another power failure until such time as the battery has been recharged. However, it could take, e.g., up to one hour for the battery to be fully charged again, during which time use of the volatile memory may have to be suspended if the risk of data loss is to be avoided.
This problem could be reduced by using, e.g., a sufficiently large or oversize battery, or more than one battery, but that may not always be practicable or desirable and such a battery or batteries could still in some circumstances become exhausted. Another approach might be to mirror the system so that there is a backup volatile memory and battery but again that may not always be practicable or desirable.
The Applicants believe therefore that there remains scope for improvements to existing memory schemes where the contents of a volatile memory are protected by a battery-powered “data dump” to a nonvolatile storage device in the event of a power failure.